package com.liang.blog.service;

import com.liang.blog.enmus.ResultCodeEnum;
import com.liang.blog.exception.ApplicationException;
import com.liang.blog.mapper.BlogInfoMapper;
import com.liang.blog.mapper.UserInfoMapper;
import com.liang.blog.model.BlogInfo;
import com.liang.blog.model.Result;
import com.liang.blog.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Slf4j
@Service
public class UserService {
    @Autowired
    private UserInfoMapper userInfoMapper;
    @Autowired
    private BlogInfoMapper blogInfoMapper;

    public UserInfo selectUserByName(String userName) {
        return userInfoMapper.selectByName(userName);
    }

    public UserInfo selectUserInfoById(Integer userId) {
        return userInfoMapper.selectById(userId);
    }

    public UserInfo selectAuthorInfoByBlogId(Integer blogId) {
        //1.根据博客id,获取作者Id
        BlogInfo blogInfo = blogInfoMapper.selectById(blogId);
        //2.根据作者ID,获取作者信息
        if(blogInfo == null || blogInfo.getUserId() == null) {
           return null;
        }
        UserInfo userInfo = userInfoMapper.selectById(blogInfo.getUserId());
        return userInfo;
    }


//
//    public void modifyImg(UserInfo user) {
//        //1.非空校验
//        if(user == null || user.getId() == null || user.getId() <= 0) {
//            //打印日志
//            log.info("参数校验失败");
//            //抛出异常
//            throw new ApplicationException("参数校验失败");
//        }
//        //2.校验用户是否存在
//        UserInfo existsUser = userInfoMapper.selectByPrimaryKey(user.getId());
//        if(existsUser == null) {
//            //打印日志
//            log.info("用户不存在");
//            //抛出异常
//            throw new ApplicationException("用户不存在");
//        }
//        //3.定义一个标志位
//        boolean checkAttr = false; //false表示没有校验通过
//        System.out.println("lll1");
//        //4.定义一个专门用来更新的对象，防止用户传入的User对象设置了其它的属性
//        //当使用动态SQL进行更新的时候，覆盖了没有经过校验的字段
//        UserInfo updateUser = new UserInfo();
//        //5.设置用户id
//        updateUser.setId(user.getId());
//        updateUser.setAvatarUrl(user.getAvatarUrl());
//        int row = userInfoMapper.updateByPrimaryKeySelective(updateUser);
//        if(row != 1) {
//            log.warn(ResultCode.FAILED.toString()+",受影响的行数不等于1 .");
//            throw new ApplicationException(Result.fail(ResultCode.FAILED));
//        }
//    }

}
